Szövegfájl (proba.txt) tartalmának beolvasása, az "a"
és "e" betűk számának kiírása (BeolvasoSzamolo.java)
import java.io.*;
A java.io csomag importálása a be és kimeneti műveletekhez szükségesek.
public class BeolvasoSzamolo{ public static int szamola
(String s){
A szamola függvény megszámolja az a betűk számát és egészként visszadja azt.
int i,ta=0;
ta = a betűre vonatkozó találatok száma
for (i=0; i<s.length();i++){
A ciklus addig megy, amíg a string végére nem érünk. A string osztály .length() függvénye számként visszaadja a string hosszát.
if(s.charAt(i)=='a'){
Megvizsgáljuk, hogy a string i-edik karaktere a betű e. Ha igen, növeljük az a betűre vonatkozó találatok számát.
ta++;
} }
return ta;
Visszadajuk az a betűre vonatkozó találatszámot.
}
public static int szamole (String s){
A szamole függvény megszámolja az e betűk számát és egészként visszadja azt.
int i,te=0;
te = e betűre vonatkozó találatok száma
for (i=0; i<s.length();i++){
if(s.charAt(i)=='e'){
Megvizsgáljuk, hogy a string i-edik karaktere e betű e. Ha igen, növeljük az e betűre vonatkozó találatok számát.
te++;
} }
return te;
Visszadajuk az e betűre vonatkozó találatszámot
}
public static void main (String[] args) throws Exception{
Az io műveleteknél kötelező a kivételkezelés.
LineNumberReader f=new LineNumberReader( new InputStreamReader(
new FileInputStream("proba.txt")));
Ahhoz, hogy sorokat olvassunk be, szükségünk van csatornák megnyitására. Jelen esetben létrehozunk egy f nevű LineNumberReader csatornát, beleágyazunk egy InputStreamReader-t, azaz bemeneti csatornát, amelybe egy FileInputStream-et, azaz fájl bemeneti csatornát ágyazunk be, amellyel a proba.txt-t érjük el.
String s; s=f.readLine();
Az s nevű String típusú változóba beolvassuk az f (proba.txt) egy sorát.
while(s!=null){
Amíg a beolvasott sor nem üres, addig él a ciklus.
System.out.println(s);
System.out.println("Az a betuk szama: "+szamola(s));
A kiírásba meghívjuk a szamola(s) függvényt, ami megszámolja a sorban lévő a betűket és egész számként visszaadja az értéket.
System.out.println("Az e betuk szama: "+szamole(s));
s=f.readLine(); }
f.close();
Lezárjuk a csatornát.
} }
|